/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package DAO;

import Model.Despesas;
import bancodedados.CriaConexao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

/**
 *
 * @author lucas
 */
public class DespesasDao {
    private Connection conexao;

    public DespesasDao() throws SQLException{
        this.conexao = CriaConexao.getConexao();
    }
    
    public void adiciona(Despesas despesas) throws SQLException{
        
        String sql = "insert into despesas (descricao, valor)" + "values(?, ?)";
        
        PreparedStatement stmt = conexao.prepareStatement(sql);
        
        stmt.setString(1,despesas.getDescricao());
        stmt.setDouble(2, despesas.getValor());
        
        stmt.execute();
        stmt.close();
    }
    
    public List<Despesas> getLista(String nome) throws SQLException{
        String sql = "select * from despesas where descricao like ?";
        PreparedStatement stmt = this.conexao.prepareStatement(sql);
        stmt.setString(1,nome);
        ResultSet rs = stmt.executeQuery();
        
        List<Despesas> minhalista = new ArrayList<Despesas>();
        while(rs.next()){
            Despesas despesas = new Despesas();
            despesas.setId(Integer.valueOf(rs.getString("id")));
            despesas.setDescricao(rs.getString("descricao"));
            despesas.setValor(rs.getDouble("valor"));
            minhalista.add(despesas);
        }
        rs.close();
        stmt.close();
        return minhalista;
    }
    
    public void altera(Despesas despesas) throws SQLException{
        String sql = "update despesas set descricao=?, valor=? where id=?";
        
        PreparedStatement stmt = this.conexao.prepareStatement(sql);
        
        stmt.setString(1,despesas.getDescricao());
        stmt.setDouble(2, despesas.getValor());
        stmt.setInt(3, despesas.getId());
        stmt.execute();
        stmt.close();
    }
    
    public void remove(Despesas despesas) throws SQLException{
        String sql = "delete from despesas where id=?";
        PreparedStatement stmt = conexao.prepareStatement(sql);
        stmt.setInt(1, despesas.getId());
        stmt.execute();
        stmt.close();
    }
            
}
